<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 递归函数:函数内部自己调用自己,这个函数就是递归函数
        var num = 1;

        function fn() {
            console.log('打印' + num + '句话');
            if (num == 6) {
                return; //递归里面必须加推出条件
            }
            num++;
            fn();
        }
        fn();

        // 利用递归求数学题
        // 1.求1 * 2 * 3 ... * n 阶乘
        function fun(n) {
            if (n == 1) {
                return 1;
            }
            return n * fun(n - 1);
        }
        console.log(fun(3));
        console.log(fun(4));
        // 2.利用递归函数求斐波那契数列(兔子序列) 1,1,2,3,5,8,13,21...
        // 用户输入一个数字n就可以求出这个数字对应的兔子序列值
        // 我们只需要知道用户输入的n的前面两项(n-1 n-2)就可以计算出n对应的序列值
        function fb(n) {
            if (n == 1 || n == 2) {
                return 1;
            }
            return fb(n - 1) + fb(n - 2);
        }
        console.log(fb(8));
    </script>
</body>

</html>